package jvm.classloader;
/*
    对于静态字段，只有直接定义了该字段的类才会初始化
    当一个类在初始化时，要求其父类应经初始化完毕了
    -XX:+TraceClassLoading 用于追踪类的加载并将信息打印出来

    -XX:+<option> 表示开启option选项
    -XX:-<option> 表示关闭option选项
    -XX:<option>=<value> 表示将option选项的值设置位value
 */
public class Test1 {
    static {
        System.out.println("Test1 static block1");
    }

    public static void main(String[] args) {
        System.out.println(Child1.str);//只会输出Parent1 static block1
        Parent1 parent1 = new Parent1();
        Parent1 parent = new Parent1();

        System.out.println(parent1.str == parent.str);
        System.out.println(parent1.str1 == parent.str1);

    }

}
class Parent1 {
    public String str1 = "jinjin";
    public static String str = "hello world";
    static {
        System.out.println("Parent1 static block1");
    }
}
class Child1 extends Parent1 {
    public static String str2 = "welcome";
    static {
        System.out.println("Child1 static block1");
    }
}
